Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: null,
    hasUserInfo: false, // 判断用户信息
    canIUseGetUserProfile: false, //判断微信小程序版本
    openid: '', //获取openID
    show: false, // 显示
  },

  // 船舶管理
  goShipInfo() {
    wx.navigateTo({
      url: '/pages/adminShip/adminShip',
    })
  },

  // 维护管理
  goMaintain() {
    wx.navigateTo({
      url: '/pages/adminMaintain/adminMaintain',
    })
  },

  // 物资管理
  goMaterial() {
    wx.navigateTo({
      url: '/pages/adminMaterial/adminMaterial',
    })
  },

  // 检查管理
  goCheck() {
    wx.navigateTo({
      url: '/pages/adminShipCheck/adminShipCheck',
    })
  },

  // 人员管理
  goStaff() {
    wx.navigateTo({
      url: '/pages/adminStaff/adminStaff',
    })
  },


  // 退出登录
  editOut() {
    // 清空浏览器缓存
    wx.setStorageSync('userInfo', ''),
      wx.setStorageSync('root', false);

    // 变量初始化
    this.setData({
      userInfo: null,
      hasUserInfo: false,
      show: false
    })
  },

  // 管理员模式
  getAdminInfo() {
    let arr = [];
    // 判断是否 记录里面有管理员
    if (wx.getStorageSync('userInfo')) {
      let getId = wx.getStorageSync('userInfo').openId;

      // 云函数调用
      wx.cloud.callFunction({
        name:"getAdmin",
        success:(res)=>{
          res.result.forEach(item => {
            arr.push(item.darkBlue_adminId);
          })

          // 有重复
          if (arr.indexOf(getId) != -1) {
            wx.setStorageSync('root', true);
          }
        }
      })
    
    }
  },

  // 获取openid
  getOpenId() {
    let that = this;
    // 云函数
    wx.cloud.callFunction({
      name: 'getOpenId',
      complete: res => {
        // console.log('云函数获取到的openid:', res.result.openid)
        var openid = res.result.openid;
        that.setData({
          openid
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let _this = this;
    // 获取openid
    _this.getOpenId();
    //判断高版本getUserProfile可不可用
    if (wx.getUserProfile) { //判断有没有方法
      _this.setData({
        canIUseGetUserProfile: true
      })
    }

    // 判断浏览器缓存存在数据
    if (wx.getStorageSync('userInfo')) {
      _this.setData({
        userInfo: wx.getStorageSync('userInfo'),
        hasUserInfo: true,
        show: true,
      })
    }

    _this.getAdminInfo();
  },

  //获取用户信息
  getUserProfile() {
    let _this = this;
    let openId = _this.data.openid;
    let list = null;

    //2.10.0以上版本登录信息获取方式
    wx.getUserProfile({
      desc: '用于获取信息',
      success: (res) => {
        console.log(res);
        // 查询用户重复
        wx.cloud.callFunction({
          name: "getUserInfo",
          data: {
            openId
          },
          success: (resArr) => {
            console.log(resArr);
            console.log(resArr.result);
            if (resArr.result.length == 0) {
              // 没有 插入新纪录
              list = {
                avatarUrl: res.userInfo.avatarUrl,
                nickName: res.userInfo.nickName,
                openId,
              }
              // 存入数据库
              wx.cloud.callFunction({
                name: "setUserInfo",
                data: {
                  darkBlue_openId: openId,
                  darkBlue_uHand: res.userInfo.avatarUrl, // 头像
                  darkBlue_uName: res.userInfo.nickName, // 昵称
                }
              })

              // 放入 浏览器缓存
              wx.setStorageSync('userInfo', list);
            } else {
              // 查到重复的值
              list = {
                avatarUrl: resArr.result[0].darkBlue_uHand,
                nickName: resArr.result[0].darkBlue_uName,
                openId: resArr.result[0].darkBlue_openId,
              }
              // 刷新浏览器缓存
              wx.setStorageSync('userInfo', list);
            }
            _this.setData({
              userInfo: list,
              hasUserInfo: true,
              show: true
            })
          }
        })
      }
    })
  },

  // 2.10.0以下版本登录信息获取方式 
  //第二种写法
  getUserInfo(e) {
    console.log(e.detail.userInfo);
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true,
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getAdminInfo();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    this.getAdminInfo();
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})